/* Zatok - язык программирования текстовых игр
 * (С) 2010 - 2012 Меркулов Матвей Юрьевич
 * Код лицензирован под лицензией GNU LGPL
 * Вы можете прочитать текст лицензии по адресу:
 * http://www.gnu.org/copyleft/lesser.html
 * или прочитать русский перевод по адресу:
 * http://ru.wikisource.org/wiki/GNU_Lesser_General_Public_License
 */

package base.module.intrface;

import base.CProject;
import base.context.CCommand;
import base.intrface.CChoice;
import base.module.CModule;
import base.value.userobject.CUserObject;
import java.util.LinkedList;

public class CSetChoice extends CModule {
	@Override
	public void Init() {
		if ( Param.length < 2 ) Error( "Не хватает параметров для функции \"Выбор\"" );
	}
	
	
	
	@Override
	public void Execute() {
		if( CProject.Choices == null ) Error( "Невозможно добавить действие в блоке инициализации" );
		CCommand Command = CProject.RootObject.FindCommand( Param[ 1 ].ToString() );
		if ( Command == null ) Error( "Команда не найдена" );
		LinkedList<CChoice> Choices = CProject.AddCommand( Param[ 0 ].ToString(), Command );
		if ( Choices == null ) Error( "Пустая строка команды" );

		int ParamQuantity = Param.length - 2;
		CUserObject[] NewParam = new CUserObject[ ParamQuantity ];
		for ( int N = 0; N < ParamQuantity; N++ ) {
			NewParam[ N ] = Param[ N + 2 ].ToObject();
		}
		for( CChoice Choice : Choices ) {
			Choice.Param = NewParam;
		}
	}
}
